from learning_to_adapt.utils.serializable import Serializable
import tensorflow as tf

class Layer(Serializable):
    def __init__(self, name, input_dim, output_dim, hidden_sizes=(32,32), **kwargs):
        self.input_dim = input_dim
        self.output_dim = output_dim
        self.name = name
        self.hidden_sizes = hidden_sizes
    
    def build_graph(self):
        """
        构建策略的计算图
        """
        raise NotImplementedError
    
class RNN(Layer):
    def __init__(self, *args, **kwargs):
        with tf.variable_scope(self.name, reuse=tf.AUTO_REUSE):

            args = 